package com.tx.dao;

import com.tx.entity.Page;
import com.tx.entity.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * @Author: tcx
 * @description: 用户数据持久化层接口
 * @Date: 2019/11/5
 **/
@Repository("userDao")
public interface UserDao {
    //用户登录
    User  selectUser(@Param("userName") String userName, @Param("uPassword") String uPassword);
    //用户登录-查询盐值
    String  selectUserSalt(@Param("userName") String userName);
    //用户注册
    void  insert(User user);
    //用户信息更新
    void  update(User user);
    //删除用户
    void  delete(Integer id);
    //根据id查询用户
    User  select(Integer id);
    //查询所有用户
    List<User> selectAll();
    //根据用户名获取用户信息
    User selectByName(String uName);
    //根据用户名获取用户信息
    User selectByEmail(String uEmail);
    //更新用户头像
    void updateHeadImage(User user);
    /* *
     * @description:  查询所有用户总记录数
     * @author tcx
     * @date 2019/11/12
     * @param
     * @return java.lang.Integer
     */
    Integer selectUserCount();
    /* *
     * @description:  分页查询所有用户，按时间排序
     * @author tcx
     * @date 2019/11/12
     * @param page
     * @return java.util.List<com.tx.entity.User>
     */
    List<User> selectUserByPage(Page page);
    void updateNickName(User user);
    //查询用户密码
    String selectPwd(Integer uId);
    //修改密码
    Integer updatePwd(Map<String,Object> map);
    //数据总数
    public Integer getTotal(Map<String,Object> map);
    //查询所有用户
    public List<User> selectUserKey(Map<String,Object> map);
}
